package com.huilan.hgt.util;

import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author ghy
 * @date 2018-06-07 15:44:24
 * @description 日期工具类
 */
public class DateUtil {

    public final static String DATE_FORMAT_DATEONLY ="yyyy-MM-dd";
    public final static String DATE_FORMAT_DATETIME ="yyyy-MM-dd HH:mm:ss";

    /**
     * 获取现在时间
     *
     * @return 返回时间类型 yyyy-MM-dd HH:mm:ss
     */
    public static Date getNowDate() {
        SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT_DATETIME);
        String dateString = formatter.format(new Date());
        try {
            return formatter.parse(dateString);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 获取现在时间
     *
     * @return 返回短时间格式 yyyy-MM-dd
     */
    public static Date getNowDateShort() {
        SimpleDateFormat formatterShort = new SimpleDateFormat(DATE_FORMAT_DATEONLY);
        String dateString = formatterShort.format(new Date());
        ParsePosition pos = new ParsePosition(8);
        return formatterShort.parse(dateString, pos);
    }

    /**
     * 获取现在时间
     *
     * @return 返回字符串格式 yyyy-MM-dd HH:mm:ss
     */
    public static String getStringDate() {
        SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT_DATETIME);
        return formatter.format(new Date());
    }

    /**
     * 获取现在时间
     *
     * @return 返回短时间字符串格式yyyy-MM-dd
     */
    public static String getStringDateShort() {
        SimpleDateFormat formatterShort = new SimpleDateFormat(DATE_FORMAT_DATEONLY);
        return formatterShort.format( new Date());
    }


    /**
     * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
     *
     * @param dateDate
     * @return
     */
    public static String dateToStrLong(Date dateDate) {
        SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT_DATETIME);
        return formatter.format(dateDate);
    }


    /**
     * 将短时间格式时间转换为字符串 yyyy-MM-dd
     *
     * @param dateDate
     * @return
     */
    public static String dateToStr(Date dateDate) {
        SimpleDateFormat formatterShort = new SimpleDateFormat(DATE_FORMAT_DATEONLY);
        return formatterShort.format(dateDate);
    }


    /**
     * 将短时间格式字符串转换为时间 yyyy-MM-dd
     *
     * @param strDate
     * @return
     */
    public static Date strToDate(String strDate) {
        SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT_DATETIME);
        ParsePosition pos = new ParsePosition(0);
        return formatter.parse(strDate, pos);
    }

}
